#include "vecteur.h"
#include <assert.h>
#include <stdio.h>
#include <malloc.h>
#include <math.h>

Vect *vectNouveau()
{
    return (Vect*) malloc (sizeof(Vect));
}

Vect *vectNouveauInit(float x,float y)
{
	Vect *pNouveau;
	pNouveau=vectNouveau();

	pNouveau->x=x;
	pNouveau->y=y;

	return pNouveau;

}

void vectDetruire(Vect *pVect)
{
	assert(pVect!=NULL);
	free(pVect);
}


float vectGetNorme(const Vect *pVect)
{
	return  sqrt(pow(pVect->x,2)+pow(pVect->y,2));
}

Vect *vectAddition(const Vect * pVect1, const Vect *pVect2)
{
	 return vectNouveauInit(pVect1->x + pVect2->x, pVect1->y + pVect2->y);
}
/*accesseurs et mutateurs*/

float vectGetX(const Vect *pVect)
{
	return pVect->x;
}

float vectGetY(const Vect *pVect)
{
	return pVect->y;
}

void vectSetX(Vect *pVect, float x)
{
	pVect->x=x;
}
void vectSetY(Vect *pVect, float y)
{
	pVect->y=y;
}

void vectSetXY(Vect *pVect, float x, float y)
{
	pVect->x=x;
	pVect->y=y;
}

void vectTestRegression()
{
	Vect *vectTest1, *vectTest2;
	float x, y;

	x=10; y = 15;

	printf(" \n -----------------TEST DE REGRESSION : MODULE VECTEUR--------------------------\n");

	vectTest1=vectNouveau();
	assert(vectTest1!=NULL);
	printf("fonction vectNouveau : ok\n");

	vectTest2=vectNouveauInit(x , y);
	assert(vectTest2!=NULL);
	assert((vectTest2->x == x) && (vectTest2->y==y));
	printf("fonction vectNouveauInit : ok\n");

	vectDetruire(vectTest1);
	vectDetruire(vectTest2);
}

